Clear["Global`*"]
PDE = D[u[x, t], {t, 2}] - c^2 D[u[x, t], {x, 2}] == 0
(*arb1, arb2 αυθαίρετες*)
uSol[x_, t_] := arb1[x + c t] + arb2[x - c t]Στήσιμο ΜΔΕ.
Clear["Global`*"]
PDE = D[u[x, t], {t, 2}] - c^2 D[u[x, t], {x, 2}] == 0;
u[x, t] = X[x]*T[t]
PDE = D[u[x, t], {t, 2}] - c^2 D[u[x, t], {x, 2}] == 0Αρχικές συνθήκες
init1 = u[x, 0] == f[x]
init2 = Derivative[0, 1][u][x, 0] == g[x]Συνωριακές συνθήκες
bound1 = u[0, t] == 0
bound2 = u[L, t] == 0PDE[[1]]/(c^2 X[x] T[t]) // ApartODEt = T''[t]/(c^2 T[t]) == λ
ODEx = X''[x]/X[x] == λΕξετάζουμε πρώτα τις προς απόρριψιν περιπτώσεις $λ\geq0$. Από τις u(0,t)==0 και u(L,t)==0 συνάγουμε ότι X(0)T(t)==0==X(L)T(t). Επομένως X(0)==0==X(L), προκειμένου να αποφύγουμε τη μηδενική λύση.
Assuming[λ > 0, DSolve[ODEx, X[x], x]]
Assuming[λ > 0, DSolve[{ODEx, X[0] == 0, X[L] == 0}, X[x], x]]Στην περίπτωση που λ=0 έχουμε:
ODEx = X''[x] == 0DSolve[{ODEx}, X[x], x]
DSolve[{ODEx, X[0] == 0, X[L] == 0}, X[x], x]Αποδείξαμε ότι λ<0, επομένως:
λ = -k^2
ODEx = X''[x] + k^2 X[x] == 0
DSolve[{ODEx}, X[x], x]
DSolve[{ODEx, X[0] == 0, X[L] == 0}, X[x], x]Έχουμε τις ιδιοτιμές:
k = (m Pi)/LΆρα:
DSolve[{ODEx, X[0] == 0, X[L] == 0}, X[x], x]
DSolve[ODEt, T[t], t]Έχουμε ότι η $u_m(x,t)=\sin(\dfrac{m \pi x}{L})(a_m \cos(\dfrac{c m \pi t}{L})+b_m\sin(\dfrac{c m \pi t}{L}))$ ικανοποιεί τη Μ.Δ.Ε. και τις συνοριακές συνθήκες. Το ίδιο συμβαίνει και με κάθε γραμμικό συνδυασμό τους. Θα βρούμε ποιος γραμμικός συνδυασμός επαληθεύει και τις αρχικές συνθήκες. Θέλουμε, δηλαδή:
$\sum_{m=1}^{\infty}u_m(x,0)=f (x)\Leftrightarrow \sum_{m=1}^{\infty}a_m \sin(\dfrac{m \pi x}{L})=f(x)$
${\sum_{m=1}^{\infty}\partial_t u_m(x,0)=g(x)}\Leftrightarrow {\sum_{m=1}^{\infty} {\dfrac{c m b_m \pi }{L}}\sin(\dfrac{m \pi x}{L})=g(x)}$
Οι συντελεστές $a_m$ και $b_m$ θα βρεθούν πολλαπλασιάζοντας εσωτερικά με $\sin(m x)$ και τα δύο μέλη των ισοτήτων. Λαμβάνοντας υπ' όψιν την ορθογωνιότητα των ημιτόνων έχουμε:
a[m_] := Assuming[Element[m, Integers],
Integrate[f[x] Sin[(m π x)/L], {x, 0, L}]/
Integrate[(Sin[(m π x)/L])^2, {x, 0, L}]]
a[m]b[m_] := Assuming[Element[m, Integers],
Integrate[g[x] Sin[(m π x)/L], {x, 0, L}]/((c m Pi)/
L Integrate[(Sin[(m π x)/L])^2, {x, 0, L}])]
b[m]un[x_, t_, m_] :=
Sin[(m π x)/L] (a[m] Cos[(c m π t)/L] + b[m] Sin[(c m π t)/L])
uApprox[x_, t_, n0_] := Sum[un[x, t, m], {m, 1, n0}]
uApprox[x, t, 4]Ας εξειδικεύσουμε την κατάσταση, για να δούμε τι πετύχαμε.
c = 4;
L = 2 Pi;
f[x_] := x^2
g[x_] := 2 x - 1uApprox[x, t, 6]Table[Plot3D[Evaluate[uApprox[x, t, n0]], {x, 0, L}, {t, 0, 10}], {n0, 1, 6}]Plot3D[Evaluate[uApprox[x, t, 30]], {x, 0, L}, {t, 0, 10}, AxesLabel -> {"x","t"}]